$(function(){

	/*-- 共通メソッドの実行 ------------------------------------------*/

	accordion("#accordion"); 	// サイドメニューの設定
	sidemenuFromRightTop();		// 右上のボタンからプラグインを開く
	settingView();				// プロフィール編集の設定
	settingSiteSelecter();		// ヘッダーサイト選択の設定
	setControls();				// alertが出る項目の制御
	setScroller();				// ページ先頭ボタン
	setSearchFrom();			// 検索フォームの微調整
	$(".colorbox").colorbox();
	
	setRadioAndCheckbox();													// radio,checkboxの装飾
	$("select, input:file").uniform();										//selectとファイル選択の装飾
	$('td:has(.error)').parent().addClass("required");						//エラーメッセージを持つセルに着色
	$('table tbody tr:odd').addClass('odd');								//テーブルの装飾
	//$('.message').animate({backgroundPositionY:"11px"},1000);				//メッセージのアイコンを動かす
	
	$(".smartspinner").spinit({ width:54, height: 20});
	if($('#modules').size() > 0){moduleOrder(true,false,true);}			// モジュールの並び替え トップのみ強制実行
	if($('textarea:not(.mce_edit)').size() > 0)$('textarea').autogrow();	// autogrow
	if($(".sortable").size() > 0){$(".sortable").tablesorter();} 			// sortable
	
	/*------------------------------------------------------------*/
	
	//押したら.activeを付加するメニュー
	if($('.activemenu').size() > 0){
		$('.activemenu a').click(function(){
			var p = $(this).closest(".activemenu");
			$('a',p).removeClass("active");
			$(this).addClass("active");
		});
	}

});


/*-- 全ページ共通 --------------------------------------------------------------------*/

var reset_cookie = function(t){
	customConfirm('リセットしますか？',"",$(".reset_" + t),function(){
		if(t == "setting"){
			$.cookie('header_footer_bg', null);
			$.cookie('header_footer_color', null);
			$.cookie('content_part_color', null);
			$.cookie('content_part_text_color', null);
			$.cookie('aside_bg', null);
			$.cookie('aside_text_color', null);
			$.cookie('active_menu_bg', null);
			$.cookie('active_menu_color', null);
			$.cookie('logo_color', null);
		}else {
			var max = $('#aside_inner > ul').length -1 ;
			for(var i = max; i >= 0; i--){
				$.cookie('module_'+i ,null);
				$.cookie('side_module_'+i ,null);
			}
		}
		window.location.reload();
	},"e");
}

var moduleOrder = function(modules,aside,setup){
	
	var order = function(m,a){
		var max = $('#aside_inner > ul').length -1;
		var container = $("#module_container");
		for(var i = max; i >= 0; i--){
			if(m && container.size() > 0){
				var id = $.cookie('module_'+i);
				$('#'+id).prependTo('#module_container');
			}
			if(a){
				var id_side = $.cookie('side_module_'+i);
				$('#'+id_side).prependTo('#aside_inner');
			}
		}
	}
	
	if(setup){
		$("#module_container").sortable({
			handle : "h3,ul",
			placeholder : "module_placeholder",
			scroll:true,
			revert:200,
			tolerance:"pointer" ,
			start : function(){
	
				var t = $("#aside_inner > p");
				if(t.hasClass("active")){
					t.click();
				}
				$("body").append("<div id='righttopmsg'>並べたい位置に移動して、クリックを離して下さい。</div>");
				$('#righttopmsg').show(300);
			},
			deactivate : function(event, ui){
				//$('#modules div').animate({height:"180px"},200);
				//$('#modules div ul').show();
				$('#righttopmsg').fadeOut(300,function(){$(this).remove();});
				$('#module_container div').map(function(idx, obj){
					$.cookie('module_'+idx, $(this).attr('id'), {expires : 30});
					$.cookie('side_module_'+idx, "side_"+$(this).attr('id'), {expires : 30});
				});
				
				//この時点ではasideのsortはフラグ立てのみ
				//この状態で開いた段階でsortを実行する
				$('aside').addClass("sort_wait");
			}
		});
	}
	
	//初回
	order(modules,aside);
}

var settingSiteSelecter = function(){
	$('#rt_site > a').click(function(){
		
		var l = $(this).offset().left;
		
		var set = function(){
			$('#select_site').css({"left":l+"px"}).slideToggle(300);
			$('#select_site a').live("click",function(){
					
					//var img = $('img',this).attr("src");
					//$('#select_site').slideUp(300);
					//$('#rt_site a').html('<img src="' + img + '" />' + $(this).text());

					$.ajax({
						url      : "./login.php?mode=changeSite&site_id=" + this.id,
						dataType : "text",
						async    : false,
						success  : function( data ){
							if(data == 'OK'){
								location.href='index.php';
							}
							return false;
						},
						error : function(){
						}
					});
				});
		}
		
		if($('#select_site').size() == 0){
			$('body').append('<div id="select_site"></div>');
			$('#select_site').load('./assets/scripts/setting/select_site.html',
			function(){
				set();
			});
		}else {
			set();
		}
	});
}

var settingView = function(){
	
	//クッキーから配色を再現
	var header_bg = ($.cookie('header_footer_bg')) ? $.cookie('header_footer_bg') : "#000000";
	var header_color = ($.cookie('header_footer_color')) ? $.cookie('header_footer_color') : "#ffffff";
	var header_shadow = (header_color == "#ffffff" || header_color == "rgb(255, 255, 255)") ? "#000000" : "#ffffff";
	var content_part_color = ($.cookie('content_part_color')) ? $.cookie('content_part_color') : "#E5E227";
	var content_part_text_color = ($.cookie('content_part_text_color')) ? $.cookie('content_part_text_color') : "#000000";
	var aside_bg = ($.cookie('aside_bg')) ? $.cookie('aside_bg') : "#151515";
	var aside_text_color = ($.cookie('aside_text_color')) ? $.cookie('aside_text_color') : "#ffffff";
	var aside_shadow = (aside_text_color == "#ffffff" || aside_text_color == "rgb(255, 255, 255)") ? "#000000" : "#ffffff";
	var active_menu_bg = ($.cookie('active_menu_bg')) ? $.cookie('active_menu_bg') : "#303030";
	var active_menu_color = ($.cookie('active_menu_color')) ? $.cookie('active_menu_color') : "#ffffff";
	var logo_color = ($.cookie('logo_color')) ? $.cookie('logo_color') : "white";
	
	$('header,footer').css("background-color",header_bg);
	$('header a').css({"color":header_color,"text-shadow":"0 1px 0" + header_shadow});
	$('footer').css({"color":header_color});
	$('header h1').addClass(logo_color);
	$('article h2 span , article h4 span').css({"background-color":content_part_color});
	$('article h3').css({"background-color":content_part_color,"color":content_part_text_color});
	$('aside div ul li , #aside_inner , aside#accordion p a').css({"background-color":aside_bg});
	$('aside div ul > li > a').css({"color":aside_text_color,"text-shadow":"0 -1px 0" + aside_shadow});
	$('nav .active').css("background-color",active_menu_bg);
	$('nav .active a').css({"color":active_menu_color});
	//$('header,footer').css("background-color",content_part_color);
	
	
	var toggle = function(){
		var x = $('#rt_admin a').offset().left-$("#setting").width()+$('#rt_admin').width();
		$('#setting').css({left:x+"px"}).toggle();
	}
	
	$('#rt_admin a').click(function(){
		
		if($('#setting').size() == 0) {
			$('body').append('<div id="setting"></div>');
			$('#setting').load('./assets/scripts/setting/setting_content.html',function(){
				$('#setting > ul li a').click(function(){
					$('#setting > ul li').removeClass("active");
					$(this).parent().addClass("active");
					var i = $('#setting > ul li a').index($(this));
					$('#setting > div').hide();
					$('#setting > div:eq(' + i + ')').show();
				});
				
				$('#setting > span a').click(function(){
					$('#setting').toggle();
				});	
				
				//初期設定
				$('.header_footer_bg').val(header_bg);
				$('.content_part_color').val(content_part_color);
				$('.aside_bg').val(aside_bg);
				$('.active_menu_bg').val(active_menu_bg);
				$('input[name=logo_color]').each(function(){
					if($(this).val() == logo_color){$(this).attr("checked","checked");}
				});
				
				//色の保存
				$('.setting_color .save_setting').click(function(){
					$.cookie('header_footer_bg', $('.header_footer_bg').val(), {expires : 30});		//ヘッダとフッタの背景色
					$.cookie('header_footer_color', $('header a').css("color"), {expires : 30});		//ヘッダとフッタの文字色
					$.cookie('content_part_color', $('.content_part_color').val(), {expires : 30});	//コンテンツ内パーツの色
					$.cookie('content_part_text_color', $('article h3').css("color"), {expires : 30});	//article > h3の文字色
					$.cookie('aside_bg', $('.aside_bg').val(), {expires : 30});						//asideの背景色
					$.cookie('aside_text_color', $('aside div ul > li a').css("color"), {expires : 30});//asideの文字色
					$.cookie('active_menu_bg', $('.active_menu_bg').val(), {expires : 30});			//nav > .activeの背景色
					$.cookie('active_menu_color', $('nav .active a').css("color"), {expires : 30});//nac > .activeの文字色
					$.cookie('logo_color', $('header h1').attr("class"), {expires : 30}); 				//ロゴ
					
					$("body").append("<div id='righttopmsg'>保存しました</div>");
					$('#righttopmsg').show(300,function(){
						$('#righttopmsg').delay(2000).fadeOut(300,function(){$(this).remove();});
					});
				});
				
				//カラーピッカーのセット
				var f = $.farbtastic('#picker');
				var p = $('#picker').css('opacity', 0.25);
				var selected;
				$('.colorwell')
					.each(function () { f.linkTo(this); $(this).css('opacity', 0.75); })
					.focus(function() {
						t = this;
						$("#setter dl").removeClass("selected");
						$(this).parent().parent().addClass("selected");
						if (selected) {
							$(selected).css('opacity', 0.75).removeClass('colorwell-selected');
						}
						f.linkTo(this);
						p.css('opacity', 1);
						$(selected = this).css('opacity', 1).addClass('colorwell-selected');
					});
				
				
				toggle();
				$('#setting').draggable({handle: "ul"});
			});
		}else {
			toggle();
		}
	});
}

var accordion = function(p){
	
	if($("aside").size() == 0){return;}
	
	var that = {};
	
	that.checkSortFlag = function(){
		//sortのフラグチェック
		if($('aside').hasClass("sort_wait")){
			moduleOrder(false,true);
			$('aside').removeClass("sort_wait");
		}
	};
	
	that.toggleAnimation = function(){
		
		var maxtop = 0;
		var maxbottom = 0;
		var aside = $('aside');
		var defaultLeft = aside.offset().left+$('p',aside).width();
		var defaultX = $('p',aside).css("left");
		var defaultTop = aside.offset().top;
		var arrowWidth = $('p',aside).width();
		aside.animate({'left':defaultLeft+'px'},600).addClass("first-state");
		$('p a',aside).click(function(){
			
			that.checkSortFlag();
			
			var l = 0;
			if(aside.css('left') == "0px"){ //開いている
				l = defaultLeft;
				$('p',aside).removeClass("active");
				aside.animate({left:(l-arrowWidth)+"px"},300,function(){
					aside.css({position:"fixed",top:defaultTop+"px"}).animate({left:defaultLeft+'px'},300);
				});
				$('p',aside).css({position:"absolute",top:"0px"});
				maxtop = 0;
			}else{ //閉じてる
				var stateScroll = $(document).scrollTop();
				$('p',aside).addClass("active");
				aside.css({position:"absolute",top:(stateScroll+defaultTop)+"px"});
				$('p',aside).css({position:"fixed",left:"0px",top:defaultTop+"px"}).animate({left:defaultX},300);
				maxtop = aside.offset().top-defaultTop;
				maxbottom = aside.height()+aside.offset().top-100;
				if(aside.hasClass('first-state')){
					moduleOrder(false,true);
					aside.removeClass('first-state');
				}
			}
			aside.animate({'left':l + 'px'},300);
		});
		
		//スクロールを監視する
		$(window).scroll(function() {
			if(maxtop > 0){
				if($(document).scrollTop() < maxtop){
					$('p',aside).css({position:"absolute",top:"0px"});
				}
				else if($(document).scrollTop() > maxbottom){
					$('p',aside).css({position:"absolute",top:(aside.height()-defaultTop)+"px"});
				}else {
					$('p',aside).css({position:"fixed",top:defaultTop+"px"});
				}
			}
		});
	};
	
	//どの場面でも必要なため、作成段階で呼ぶ
	that.toggleAnimation();
	
	that.hide = function(target,h){
		target.animate({height:"0px"},300,
			function(){
				$(this).hide().css({height:h+'px'})
			});
	};
	
	that.start = function(obj){
		//クリックしたノード周辺
		var parent = $(obj).parent().parent();
		var inner = $('ol',parent);
		var h = inner.height();
		//展開済のノード
		var before = ($('ul.active',p).size() > 0) ? $('ul.active ol',p) : "";
		
		$('ul',p).removeClass("active");
		parent.addClass("active");

		if(inner.is(':hidden')){
			if(before != ""){
				that.hide(before,before.height());
			}
			inner.show().css({height:"0px"}).animate({height:h+"px"},300);
		}else {
			if(before != ""){
				that.hide(inner,h);
			}
			$('ul',p).removeClass("active");
		}
	};
	
	//クリックイベントを付与
	$('ul > li a',p).click(function(){
		that.start($(this));
	});
	
	return that;
}

var sidemenuFromRightTop = function(){
	
	var base_height = $('nav').height();
	var aside = $('aside');
	
	$("h2 p a").click(function(){
		if($('nav').height() == base_height){
			
			if(aside.hasClass('first-state')){
				moduleOrder(false,true);
				aside.removeClass('first-state');
			}
			
			$(this).addClass('active').text("close");
			
			$('nav')
				.addClass("plugin_open")
				.prepend("<div id='plugin_in_nav'>" + $('#aside_inner').html() + "</div>")
				
			$('#plugin_in_nav p').remove();
			$('#plugin_in_nav li').css("background-color","");
			
			var h = $('#plugin_in_nav').height();
			$('#plugin_in_nav').hide().fadeIn(200);
			
			$('nav').animate({height:h+base_height+40 + "px"},200);
			
		}else {
			
			$(this).removeClass('active').text("Open Plugins");
			
			$('nav')
				.animate({height:base_height+"px"},200,function(){
					$(this).removeClass("plugin_open")
				});
			$('#plugin_in_nav').fadeOut(200,function(){$(this).remove();});
		}
	});
}

/*-- UIの装飾 --------------------------------------------------------------------*/

var setSearchFrom = function(){
	if($('#search_form').not('.nofix').size() == 0){return;}
	var dtw = 0;
	var ddw = 0;
	$('#search_form dt').each(function(){
		if($(this).outerWidth() > dtw){dtw = $(this).outerWidth();}
	});
	$('#search_form dl:not(.category) dd').each(function(){
		if($(this).outerWidth() > ddw){ddw = $(this).outerWidth();}
	});
	$('#search_form dt').width(dtw);
	$('#search_form dl:not(.category) dd').width(ddw);
}

var setRadioAndCheckbox = function(){
	
	if(jQuery.browser.msie && parseInt(jQuery.browser.version) == 7){
		// ie7は調整が必要なためとりあえず除外
	}else {
		//2回目用に一度イベントを解除しておく
		$('input[type=radio],input[type=checkbox]').unbind();
		
		//初めに全て走査して、labelに対して要素に対応したクラス付与とチェック済クラス付与
		$('input[type=radio],input[type=checkbox]').each(function(){
			var p = $(this).parent();
			p.removeClass($(this).attr('type')).addClass($(this).attr('type'));
			if($(this).attr('checked')){
				p.addClass('checked');
			}
		});
		
		//radioの監視
		$('input[type=radio]').change(function(){
			var name = $(this).attr('name');
			$('input[name=' + '"' + name + '"' +']').parent().removeClass('checked');
			$(this).parent().addClass('checked');
		});
		
		//checkboxの監視
		$('input[type=checkbox]').change(function(){
			if($(this).attr('checked')){
				$(this).parent().addClass('checked');
			}else {
				$(this).parent().removeClass('checked');
			}
		});
	}
}

var sortableTable = function(c){
	/*--- テーブルセルのドラッグ ---*/
	var op = ($('.draggable').hasClass('noTip')) ? "on" : "";
	$('.draggable input').click(function(){$(this).focus();});
	
	$(".draggable tbody").sortable({
		start: function(event, ui) {
			$("body").append("<div id='righttopmsg'>並べたい位置に移動して、クリックを離して下さい。</div>");
			$('#righttopmsg').show(300);
		},
		stop: function(event, ui) {
			$('#righttopmsg').fadeOut(300,function(){$(this).remove();});
		}
	});
	$(".draggable tbody").disableSelection();
	//$(".draggable tbody td").width($(this).width()); //ドラッグ中サイズが不安定なため固定しておく
	if(op == ""){
		$(".draggable tr td:last-child").append("<span class='ddmsg'>ドラッグ&ドロップで並び替え</span>");
	}
}

var setTreeView = function(tar){
	
	tar = (tar) ? tar : "#caregory";
	
	if($(tar).size() > 0){
		
		$(tar).treeview({
			collapsed : true,
			animated: "fast",
			control: ".treecontrol"
		});
		$(tar + " li").each(function(){
			if($(" > ul",this).size() > 0){
				$(" > a",this).parent().prepend("<span>" + $(" > ul > li",this).size() + "</span>");
			}
		});
		$(tar + ' li span').click(function(){
			$(this).next().click();
		});
		//ルートを展開
		$(tar + ' > li > div.hitarea').click();
	}
}

var tableToThumbs = function(param){
	
	if($('#liststyle').size() == 0){return;}

	var sliceText = function(str){
		var size = 8;
		if(str.length > size){
			str = str.slice(0,size) + ".."
		}
		return str;
	}
	
	$('#liststyle li a').click(function(){
		var type = $("em",this).attr("class");
		var table = $("#liststyle").next();
		var list = $("#" + table.attr("id") + "_list");
		
		var main = param.main;
		var info = param.info;
		
		if(type == "list"){
			table.fadeIn(300);
			list.hide();
		}else {
			if(list.size() == 0) {
				
				var infoTitle = [];
				for(var i=0; i < info.length; i++){
					infoTitle[i] = $('thead th:eq(' + info[i] + ')',table).text();
				}
				
				var html = "<div id='" + table.attr("id") + "_list' class='sortable_list'>";
				$('tbody tr',table).each(function(n){
					
					var cb = $('.td_img a',this).hasClass("colorbox");
					
					var name = $('td:eq(' + param.name + ')',this).text();
					var type = $('td:eq(' + param.type + ')',this).text();
					var type_class = $('td:eq(' + param.type + ')',this).attr('class');
					var edit_url = $('td:last-child',this).find('a').attr("href");
					var img = $('td:eq(' + param.img + ')',this).find('img').attr("src");
					var imgUrl = (cb) ? img : "javascript:;";
					var colorbox = (cb) ? "colorbox" : "";
					
					html += '<ul><li>';
					html += '<ol class="ctrl"><li class="file_edit"><a href="' + edit_url + '">p</a></li></ol>';
					html += '<a href="' + imgUrl + '" class="powertip '+ colorbox + '" title="' + name + '">';
					html += '<img src="' + img + '" alt="">';
					html += '<span class="type ' + type_class + '">' + type + '</span>';
					for(var i=0; i < main.length; i++){
						html += sliceText($('td:eq(' + main[i] + ')',this).text()) + "<br />";
					}
					html += '<span class="info">';
					for(var i=0; i < info.length; i++){
						html += "<b>" + infoTitle[i] + "</b>：" + $('td:eq(' + info[i] + ')',this).text() + "<br />";
					}
					html += '</span></a>';
					html += '</li></ul>';
				});
				html += "</div>";
				$(html).insertAfter(table);
				
				$('.powertip').each(function(){
					$(this).data('powertip', $('.info',this).html());
				}).powerTip({placement: 'n',smartPlacement: true});
				$(".colorbox").colorbox();
				
			}
			list.fadeIn(300);
			table.hide();
		}
		
	});
}

/*-- フォーム関係 --------------------------------------------------------------*/

//呼び出し元でpreventDefaultで制御し、
//表示メッセージと実行したい関数を渡してこちらで処理する
var customConfirm = function(msg,mode,obj,callback,direction){
	
	var m = (mode != "") ? mode : 'default';
	var c = (direction) ? "directon_e" : "";
	
	var closeConfirm = function(){
		if($('#modal_background').size() > 0){
			$('#modal_background').fadeOut(300,function(){$(this).remove();});
			var t = $('#confirm_container').offset().top;
			$('#confirm_container').css({"position":"absolute"}).animate({"opacity":0,"top":(t-20)+"px"},300,function(){$(this).remove();});
		}
	}
	
	$('body').append('<div id="modal_background" class="white">modal is active</div>');
	$('#modal_background').fadeIn(300).height($(document).height());
	$('body').append('<div id="confirm_container" class="' + c + '"><p>' + msg + '</p><ul><li class="yes"><a href="javascript:;">YES</a></li><li class="no"><a href="javascript:;">NO</a></li></ul></div>');
	
	var x,y;
	if(direction == "e"){
		x = obj.offset().left-$('#confirm_container').width()-5;
		y = obj.offset().top-(($('#confirm_container').height()-obj.height())/2);
	}else {
		x = obj.offset().left-(($('#confirm_container').width()-obj.width())/2);
		y = obj.offset().top-$('#confirm_container').height();
	}
	
	$('#confirm_container').addClass(m).show().css({"position":"absolute","opacity":0,'left':x+"px",'top':y+"px"}).animate({"opacity":1,"top":y-18+"px"},300);
	$('#modal_background').click(function(){
		closeConfirm();
	});
	
	$('#confirm_container li a').click(function(){
		var i = $('#confirm_container a').index($(this));
		if(i == 0){ //yes
			closeConfirm();
			callback();
		}else { //no
			closeConfirm();
			return false;
		}
	});
}

var form_validation = function(){
	var flag = 0;
	reg=/^\w{3,}@\w+(\.\w+)+$/;  //E-Mail
	$('.must').each(function(){
		/*
		var p = $(this).parent();
		var t = "input:not([type=file])";
		if(($('.mce_edit',p).size() > 0)){t = "iframe";return;}
		else if(($('textarea',p).size() > 0)){t = "textarea";}
		
		if(
			(t.indexOf("iframe") == -1 && $(t,p).val() == "") ||
			((t == "iframe" && $(t,p).contents().find('body').html() == "<p>&nbsp;</p>")) ||  // for ie 9
			((t == "iframe" && $(t,p).contents().find('body').html() == "<P>&nbsp;</P>")) ||  // for ie 7,8
			((!jQuery.browser.mozilla && t == "iframe" && $(t,p).contents().find('body').html().indexOf("data-mce-bogus") != -1)) || // for chrome
			(jQuery.browser.mozilla && t == "iframe" && $(t,p).contents().find('body').html() == '<p><br data-mce-bogus="1"></p>') // for mozilla
			){
				flag++;
				p.addClass("required");
				if($('td .error',p).size() == 0){
					$(' > td',p).append('<p class="error">必須項目です</p>');
					$('td .error',p).fadeIn("slow");
				}
		}else{
			p.removeClass("required");
			$('td .error',p).remove();
		}
		*/
	});
	return (flag > 0) ? false : true;	
	//return true;	
}

var validateError = function(){
	$("body").append("<div id='righttopmsg' class='error'>入力漏れが御座います。赤枠の項目を入力して下さい。</div>");
	//最初のrequiredの場所までスクロールする
	if($(document).scrollTop() >  $('.required').offset().top-100){
		$('html,body').animate({scrollTop : $('.required').offset().top-100 + "px"}, '100','swing');
	}
	$('#righttopmsg').show(300,function(){
		$(this).delay(3000).fadeOut(300,function(){
			$(this).remove();
		});
	});
}


var remove_img = function(index){
	loading();
	var form = $('form[name=fm]',form);
	pushID();
	$('input[name=del_num]',form).val(index);
	$('input[name=mode]',form).val('remove_img');
	form.action = '#pic';
	form.submit();
}

var pushID = function(){
	var form = $('form[name=fm]',form);
	var arrCategory = new Array();
	$('#selected_category li').each( function(){
		arrCategory.push( $(this).attr('id'));
	});
	$('input[name=category]',form).val(arrCategory.toString());
}

var delete_img  = function(index){
	loading();
	pushID();
	var form = $('form[name=fm]',form);
	$('input[name=del_num]',form).val(index);
	$('input[name=mode]',form).val('delete_img');
	form.submit();
}

var setControls = function(){
	var that = {};
	
	if($('.text_date').size() > 0){
		$('.text_date').datepicker({
			changeMonth: true,
			changeYear: true,
			dateFormat: 'yy-mm-dd'
		});
	}
	
	var form = $('form[name=fm]',form);
	
	$('.btn_back , .chk_back').click(function(){
		var ref = document.referrer;
		location.href = ref;
	});

	$('#btn_regist , .chk_add').unbind().click(function(e){
		
		var dir = ($(this).hasClass('chk_add')) ? "e" : "";
		
		e.preventDefault();
		if(form_validation() == true){
			customConfirm("登録してよろしいですか？","",$(this),function(){
				loading();
				pushID();
				$('input[name=mode]',form).val('input');
				form.submit();
			},dir);
		}else {
			validateError();
		}
	});
	$('#btn_update , .chk_update').unbind().click(function(e){
		
		var dir = ($(this).hasClass('chk_update')) ? "e" : "";
		
		e.preventDefault();
		if(form_validation() == true){
			customConfirm('更新してよろしいですか？',"",$(this),function(){
				loading();
				pushID();
				$('input[name=mode]',form).val('input');
				form.submit();
			},dir);
		}else {
			validateError();
		}
	});
	$('.btn_copy,.chk_copy').unbind().click(function(e){
		
		var dir = ($(this).hasClass('chk_copy')) ? "e" : "";
		
		e.preventDefault();
		customConfirm('コピーしてよろしいですか？',"",$(this),function(){
			loading();
			pushID();
			$('input[name=mode]',form).val('copy');
			form.submit();
		},dir);
	});
	$('#btn_delete , .chk_delete').unbind().click(function(e){
		
		var dir = ($(this).hasClass('chk_delete')) ? "e" : "";
		
		e.preventDefault();
		customConfirm('削除してよろしいですか？',"alert",$(this),function(){
			loading();
			$('input[name=mode]',form).val('delete');
			form.submit();
		},dir);
	});
	$('.uploadPic').unbind().change(function(e){
		loading();
		$('input[name=mode]',form).val('upload');
		form.action = '#pic';
		form.submit();
	});
	$('.btn_upload').unbind().click(function(e){
		loading();
		pushID();
		$('input[name=mode]',form).val('upload');
		form.submit();
	});
	
	$('#btn_new').unbind().click(function(e){
		loading();
		$('input[name=mode]',form).val('new');
		form.submit();
	});
	
	$('#optYear').unbind().change(function(e){
		loading();
		$('input[name=mode]',form).val('change');
		form.submit();
	});
			
	$('#addPic').unbind().click(function(e){
		var max_uploads = 20;
		
		if( $(this).attr('rel') >= max_uploads ){
			alert('これ以上追加できません');
		}else{
			loading();
			$('input[name=mode]',form).val('add_img');
			form.action = '#pic';
			form.submit();
		}
	});
}

/*-- ナビゲーション・その他 --------------------------------------------------------------*/

var back_to_search = function(){
	var ref = document.referrer;
	var now = location.href;
	if(ref != now && typeof ref != "undefined" && typeof now != "undefined" && now.indexOf("?") != -1){
		$("body").append('<p id="back_to_result"><a href="">検索結果に戻る</a></p>');
		$('#back_to_result').delay(500).animate({left:"0px"},500);
		$('#back_to_result a').attr("href",ref);
	}
}

var setScroller = function(){
	var flag = 0;
	var scrollToTop = function(){
		flag = 1;
		$('html,body').animate({ scrollTop: 0 }, 'slow','swing',function(){flag = 0;$('#totop').fadeOut(300);});
		return false;
	}
	
	//TOPに行くボタンを拵える
	$('body').append("<div id='totop'><p><a href='javascript:;'>TO PAGE TOP</a></p></div>");
	$('#totop').click(function(){scrollToTop();});
	$(window).scroll(function() {
		if(flag == 0){
			if($(document).scrollTop() > 100){
				if($('#totop').is(':hidden')){
					$('#totop').fadeIn(300);
				}
			}else {
				$('#totop').fadeOut(300);
			}
		}
	});
}

var loading = function(t){
	if(t){
		$('#loading').fadeOut(500,function(){$(this).remove()});
	}else {
		var l = '<div id="loading"><p>読み込み中...</p></div>';
		$('body').append(l);
		$('#loading').fadeIn(300);
	}
}